Ipv4/ipv6 dual stack software/hardware apparatus and method for processing internet packet

ABSTRACT

Disclosed are an IPv4/IPv6 dual stack software/hardware apparatus for processing an Internet packet and a method thereof. The IPv4/IPv6 dual stack software/hardware apparatus for processing an internet packet includes: a hardware type packet processor configured to process the Internet packet by a system logic circuit; a software type packet processor configured to process the Internet packet according to execution of a previously prepared program; and a packet process controller configured to receive the Internet packet to control the hardware type packet processor to process the Internet packet of a preset protocol, and to control the software type packet processor to process the Internet packet of another preset protocol.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an apparatus and a method forprocessing an internet packet, and more particularly, to an IPv4/IPv6dual stack software/hardware apparatus for processing an internet packetand a method thereof.

2. Description of the Related Art

An internet protocol version 6 (IPv6) protocol provides greaterscalability and flexibility as compared with an existing IPv4 protocol.The IPv6 protocol provides flexibility through an extension headerunlike IPv4 protocol. Further, an ICMPv6 protocol also has various typesaccording to an operation method.

In order to process the extension header and an ICMPv6 packet, ahardware device having a considerably complicated form is required.

However, since the extension header of an IPv6 packet or several ICMPv6packets are not so frequently used, addition of a complicated hardwarearrangement to process the extension header of the IPv6 packet andseveral ICMPv6 packets significantly degrades cost-effectiveness.

It is considerably expected that an IPv6 technology is applied to anembedded system such as a sensor node or a wireless terminal in which asystem resource is significantly restrictive.

In the embedded system, there is a need for an IPv4/IPv6 packetprocessor having high receptivity/flexibility/maintenance satisfyingvarious applications by using a limited resource.

Recently, there is a request for an Internet packet processor capable ofprocessing both an IPv4 protocol and an IPv6 protocol and receivingvariable factors of IPv6 when an IPv4 network and an IPv6 networkcoexist.

SUMMARY OF THE INVENTION

The present invention has been made in view of the above problems, andprovides an IPv4/IPv6 dual stack software/hardware apparatus forprocessing an Internet packet.

The present invention further provides an IPv4/IPv6 dual stacksoftware/hardware method for processing an Internet packet.

In accordance with an aspect of the present disclosure, an IPv4/IPv6dual stack software/hardware apparatus for processing an internet packetis provided. The apparatus includes: a hardware type packet processorconfigured to process the Internet packet by a system logic circuit; asoftware type packet processor configured to process the Internet packetaccording to execution of a previously prepared program; and a packetprocess controller configured to receive the Internet packet to controlthe hardware type packet processor to process the Internet packet of apreset protocol, and to control the software type packet processor toprocess the Internet packet of another preset protocol.

The hardware type packet processor includes: an Ethernet headerprocessing module configured to receive and process the Internet packetaccording to a corresponding protocol; an IPv4/IPv6 header processingmodule configured to process an IPv4 packet/IPv6 packet according to acorresponding protocol; and a TCP/UDP header processing moduleconfigured to process a TCP/UDP packet according to a correspondingprotocol.

The software type packet processor includes: a software program memoryconfigured to store a user program for implementing processing of theInternet packet; a buffer configured to receive and store the Internetpacket from a packet data bus; and a processor configured to process theInternet packet stored in the buffer according to the user programstored in the software program memory.

The packet process controller includes: a user definition memoryconfigured to previously set and store a definition regarding whether toprocess the Internet packet by the hardware type packet processor or thesoftware type packet processor according to a protocol of the Internetpacket; an IPv6 packet detection module configured to parse the Internetpacket, and to detect whether the Internet packet is the IPv4 packet orthe IPv6 packet to output a detection result; a next header detectionmodule configured to detect a next header value from headers of the IPv6packet detected by the IPv6 packet detection module to output thedetected next header value; an HW/SW type packet processor statedetection module configured to detect and output operation state of thehardware type packet processor and the software type packet processor;and an HW/SW packet process switch configured to receive the next headervalue output from the next header detection module and the operationstate output from the HW/SW type packet processor state detection modulebased on the detection result output from the IPv6 packet detectionmodule, and to generate and output a control signal indicating whetherto process the Internet packet by the hardware type packet processor orthe software type packet processor according to the definition stored inthe user definition memory with reference to the received detectionresult, the next header value, and the operation state.

The user definition memory stores a first table in which informationregarding whether to process the Internet packet by the hardware typepacket processor or the software type packet processor is previouslydefined according to a type field value of an Ethernet header, andstores a second table in which information regarding whether to processthe Internet packet by the hardware type packet processor or thesoftware type packet processor is previously defined according to a nextheader value of a next header.

The IPv6 packet detection module receives a type field value of theEthernet header from the Ethernet header processing module, compares thereceived type field value of the Ethernet header with the type fieldvalue stored in the first table of the user definition memory, andclassifies the IPv6 packet, the IPv4 packet, an ARP, and a PPPoE packetto transfer a classification signal to the HW/SW packet process switch.

The next header detection module receives the next header value from theIPv4/IPv6 header processing module, compares the received next headervalue with the next header value stored in the second table of the userdefinition memory, and classifies a TCP, an UDP, an ICMPv6, a Hop by hopheader, and a routing header to transfer a classification signal to theHW/SW packet process switch.

The HW/SW type packet processor state detection module detects currentpacket processing amount of the hardware type packet processor and thesoftware type packet processor respectively to transfer a percentage ofthe detected current packet processing amount to the HW/SW packetprocess switch, and when the transferred percentage of the detectedcurrent packet processing amount is equal to or greater than a certainvalue, the HW/SW packet process switch performs a load balancing by thehardware type packet processor and the software type packet processoraccording to each field of a protocol applied to a packet so that thepercentage of the detected current packet processing amount is less thanthe certain value.

In accordance with another aspect of the present disclosure, anIPv4/IPv6 dual stack software/hardware method for processing an internetpacket is provided. The method includes: generating and outputting acontrol signal for controlling a hardware type packet processor toprocess the Internet packet or a control signal for controlling asoftware type packet processor to process the internet packet accordingto a protocol of the Internet packet by a packet process controller;processing the Internet packet by a system logic circuit according tothe output control signal by a hardware type packet processor; andprocessing the Internet packet by execution of a previously preparedprogram according to the output control signal by a software type packetprocessor.

The processing of the Internet packet by the system logic circuitaccording to the output control signal by the hardware type packetprocessor includes: receiving and processing the Internet packetaccording to a corresponding protocol by an Ethernet header processingmodule; processing an IPv4 packet/IPv6 packet according to acorresponding protocol by a IPv4/IPv6 header processing module; andprocessing a TCP/UDP packet according to a corresponding protocol by aTCP/UDP header processing module.

The processing of the Internet packet by execution of a previouslyprepared program according to the output control signal by the softwaretype packet processor includes: receiving the Internet packet from apacket data bus to store the received Internet packet in a buffer; andprocessing the stored Internet packet according to a program of asoftware program memory storing a user program to implement processingof the Internet packet by a processor.

The generating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by the packet process controller includes: parsing the Internetpacket to detect whether the Internet packet is the IPv4 packet or theIPv6 packet to output a detection result by a IPv6 packet detectionmodule; detecting a next header value from headers of the IPv6 packetdetected by the IPv6 packet detection module to output a next headervalue by a next header detection module; detecting and outputtingoperation state of the hardware type packet processor and the softwaretype packet processor by an HW/SW type packet processor state detectionmodule; and generating and output a control signal indicating whether toprocess the Internet packet by the hardware type packet processor andthe software type packet processor according to a definition stored in auser definition memory with reference to the output detection result,the next header value, and the operation state of the hardware typepacket processor and the software type packet processor by an HW/SWpacket process switch.

The generating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by the packet process controller includes: receiving a type fieldvalue of the Ethernet header from the Ethernet header processing moduleto compare the received type field value of the Ethernet header with atype field value stored in the user definition memory by the IPv6 packetdetection module; and classifying the IPv6 packet, the IPv4 packet, anARP, and a PPPoE packet to transfer a classification signal to the HW/SWpacket process switch.

The generating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by a packet process controller includes: receiving a next headervalue from the IPv4/IPv6 header processing module to compare thereceived next header value with the next header value previously storedin the user definition memory by the next header detection module; andclassifying a TCP, an UDP, an ICMPv6, a Hop by hop header, and a routingheader to transfer a classification signal to the HW/SW packet processswitch.

The generating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by the packet process controller includes: detecting currentpacket processing amount of the hardware type packet processor and thesoftware type packet processor by the HW/SW type packet processor statedetection module; and transferring a percentage of the detected currentpacket processing amount to the HW/SW packet process switch.

The generating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by the packet process controller includes: when the transferredpercentage is equal to or greater than a certain value, performing loadbalancing by the hardware type packet processor and the software typepacket processor according to each field of a protocol applied to apacket so that the percentage of the detected current packet processingamount is less than the certain value.

According to the IPv4/IPv6 dual stack software/hardware apparatus forprocessing an internet packet and the method thereof, the hardware typepacket processor having a high processing rate processes types ofrelatively frequently used protocols/packets, and the software typepacket processor having a low processing rate capable of always adding aprocessing algorithm processes types of packets which are not frequentlyused or types of newly added packets so that the packets can be easilyprocessed and both of the scalability and the flexibility of the IPv6protocol can be accepted.

Further, when a utilization rate of one of the hardware type packetprocessor and the software type packet processor approachesapproximately 100%, the packets can be stably processed by performingload balancing with respect to the hardware type packet processor andthe software type packet processor.

BRIEF DESCRIPTION OF THE DRAWINGS

The objects, features and advantages of the present invention will bemore apparent from the following detailed description in conjunctionwith the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating an IPv4/IPv6 dual stacksoftware/hardware apparatus for processing an Internet packet accordingto an embodiment of the present invention.

FIG. 2 is a block diagram illustrating a detailed configuration of ahardware type packet processor according to an embodiment of the presentinvention.

FIG. 3 is a block diagram illustrating a detailed configuration of asoftware type packet processor according to an embodiment of the presentinvention.

FIG. 4 is a block diagram illustrating a detailed configuration of apacket process controller according to an embodiment of the presentinvention.

FIG. 5 is a flowchart illustrating an IPv4/IPv6 dual stacksoftware/hardware method for processing an Internet packet according toan embodiment of the present invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The present invention is provided so that this disclosure will bethorough and complete, and will fully convey the scope of the presentinventive concept to those skilled in the art. However, the presentinvention is not limited to the specific embodiment, but the embodimentincludes all modifications, equivalents, and substitutes belonging tothe technical scope of the embodiment without departing from the spiritof the embodiment. In the drawings, the sizes and relative sizes oflayers and regions may be exaggerated for clarity. Like numerals referto like elements throughout.

It will be understood that, although the terms first, second, third etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are used to distinguish oneelement from another. Thus, a first element discussed below could betermed a second element without departing from the teachings of thepresent inventive concept. As used herein, the term “and/or” includesany and all combinations of one or more of the associated listed items.

It will be understood that when an element is referred to as being“connected” or “coupled” to another element, it can be directlyconnected or coupled to the other element or intervening elements may bepresent. In contrast, when an element is referred to as being “directlyconnected” or “directly coupled” to another element, there are nointervening elements present.

The terminology used herein is for the purpose of describing particularexample embodiments only and is not intended to be limiting of thepresent inventive concept. As used herein, the singular forms “a,” “an”and “the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will be further understood thatthe terms “comprises” and/or “comprising,” when used in thisspecification, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

It should also be noted that in some alternative implementations, thefunctions/acts noted in the blocks may occur out of the order noted inthe flowcharts. For example, two blocks shown in succession may in factbe executed substantially concurrently or the blocks may sometimes beexecuted in the reverse order, depending upon the functionality/actsinvolved.

Hereinafter, an exemplary embodiment of the present invention will bedescribed in detail with reference to accompanying drawings.

FIG. 1 is a block diagram illustrating an IPv4/IPv6 dual stacksoftware/hardware apparatus for processing an Internet packet accordingto an embodiment of the present invention.

Referring to FIG. 1, the IPv4/IPv6 dual stack software/hardwareapparatus for processing an Internet packet according to an embodimentof the present invention 100 (hereinafter, referred to as ‘Internetpacket processing apparatus’) may include a hardware type packetprocessor 110, a software type packet processor 120, and a packetprocess controller 130.

The Internet packet processing apparatus 100 is a dual stack devicecapable of processing both of an IPv4 packet and the IPv6 packet toperform processing in a hardware scheme or a software scheme accordingto protocol/packet.

The Internet packet processing apparatus 100 is variably operated byusing the hardware type packet processor 110 and the software typepacket processor 120 in such a manner that the hardware type packetprocessor 110 having a high processing rate processes protocols/packetswhich are relatively frequently used, and the software type packetprocessor 120 having a low processing rate processes protocols/packetswhich are not frequently used. Since the software type packet processor120 has a relatively low processing rate, but easily adds or changes aprocessing algorithm, the software type packet processor 120 isadvantageous to process a new format of packet.

Moreover, when the hardware type packet processor 110 or the softwaretype packet processor 120 has a high utilization rate, the Internetpacket processing apparatus 100 is configured to achieve load balancingbetween the hardware type packet processor 110 and the software typepacket processor 120 so that packet processing can be prevented frombeing delayed. When the utilization rate, that is, the percentage of acurrent processing amount to a processing capacity exceeds a certainpercentage, the load balancing is automatically performed.

In more detail, when the percentage, that is, the utilization rate ofthe hardware type packet processor 110 or the software type packetprocessor 120 is equal to or greater than a certain value, for example,95%, the Internet packet processing apparatus 100 enables the hardwaretype packet processor 110 and the software type packet processor 120 toperform the load balancing according to each field of a protocol appliedto a current packet so that the utilization rate becomes less than 95%.That is, the Internet packet processing apparatus 100 may make thehardware type packet processor 110 or the software type packet processor120 to perform a packet processing load according to the protocol and aspecific field.

Hereinafter, a detailed configuration of the Internet packet processingapparatus 100 will be described.

The hardware type packet processor 110 is configured to process theInternet packet by a system logic circuit. Like the IPv4 scheme, apreviously formalized packet processing scheme is implemented by thesystem logic circuit to rapidly process packets. Furthermore, it ispreferable to process a type of frequently used packet among IPv6packets by the hardware type packet processor 110.

The software type packet processor 120 is configured to process theInternet packet according to execution of a previously prepared program.The software type packet processor 120 is available to process types ofpackets which are not relatively frequently used, packets which arenewly added to a standard, and a packet with an extension header.Although the processing rate is relatively low, since a packetprocessing algorithm can be easily added, the software type packetprocessor 120 is so available in an IPv6 protocol having a highscalability.

The packet process controller 130 may be configured to receive theInternet packet to control the hardware type packet processor 110 toprocess an Internet packet of a preset protocol. The packet processcontroller 130 may be configured to control the software type packetprocessor 120 to process the Internet packet of another preset protocol.As described above, the packet process controller 130 may be moresuitably used by previously setting a packet processing scheme suitablefor a hardware scheme or a software scheme for every packet.

FIG. 2 is a block diagram illustrating a detailed configuration of ahardware type packet processor according to an embodiment of the presentinvention.

Referring to FIG. 2, the hardware type packet processor 110 according tothe embodiment of the present invention may include an Ethernet headerprocessing module 111, an IPv4/IPv6 header processing module 112, and aTCP/UDP header processing module 113.

The Ethernet header processing module 111 receives, parses, andprocesses the Internet packet according to a corresponding Ethernetprotocol.

The IPv4/IPv6 header processing module 112 parses and processes IPv4packet/IPv6 packet according to a corresponding protocol.

The TCP/UDP header processing module 113 parses and processes a TCP/UDPpacket according to the corresponding protocol.

FIG. 3 is a block diagram illustrating a detailed configuration of asoftware type packet processor according to an embodiment of the presentinvention.

Referring to FIG. 3, the software type packet processor 120 according tothe embodiment of the present invention may include a software programmemory 121, a buffer 122, and a processor 123.

The software program memory 121 is configured to store a user programfor implementing processing of the Internet packet. A protocolprocessing algorithm previously programmed by a user is stored in amemory such as a read only memory (ROM). The software program memory 121is continuously substituted by a software program of a version added bythe user so that packet processing according to a new algorithm can beperformed.

The buffer 122 is configured to receive and store the Internet packetfrom a packet data bus.

The processor 123 is a kind of CPU, and is configured to process theInternet packet stored in the buffer 122 according to a program storedin the software program memory 121.

FIG. 4 is a block diagram illustrating a detailed configuration of apacket process controller according to an embodiment of the presentinvention.

Referring to FIG. 4, the packet process controller 130 according to anembodiment of the present invention may include a user definition memory131, an IPv6 packet detection module 132, a next header detection module133, a HW/SW type packet processor state detection module 134, and aHW/SW packet process switch 135.

The user definition memory 131 is configured to previously set and storea definition regarding whether to process the Internet packet by thehardware type packet processor 110 or the software type packet processor120 according to protocol/type of the Internet packet. The definition ispreviously programmed and stored by the user.

The user definition memory 131 is configured to previously set and storea first table in which information regarding whether to process theInternet packet by the hardware type packet processor 110 or thesoftware type packet processor 120 is previously defined according to atype field value of an Ethernet header. The Internet packet isconfigured to select the hardware type packet processor 110 or thesoftware type packet processor 120 according to the type field value.

Further, the user definition memory 131 is configured to store a secondtable in which information regarding whether to process the Internetpacket by the hardware type packet processor 110 or the software typepacket processor 120 is previously defined according to a next headervalue of a next header.

The IPv6 packet detection module 132 is configured to parse the Internetpacket, to detect whether the Internet packet is an IPv4 packet or theIPv6 packet, and to output the detection result to the HW/SW packetprocess switch 135.

The IPv6 packet detection module 132 is configured to receive the typefield value of the Ethernet header from the Ethernet header processingmodule 111, and to compare the received type field value of the Ethernetheader with a type field value stored in the first table of the userdefinition memory 131.

In addition, the IPv6 packet detection module 132 is configured toclassify the IPv6 packet, the IPv4 packet, an ARP, and a PPPoE packetbased on the comparison to transfer a classification signal to the HW/SWpacket process switch 135.

The next header detection module 133 detects a next header value fromheaders of the IPv6 packet detected by the IPv6 packet detection module132 to output the detected next header value to the HW/SW packet processswitch 135.

The next header detection module 133 is configured to receive a nextheader value from the IPv4/IPv6 header processing module 112, and tocompare the received next header value with a next header value storedin the second table of the user definition memory 131.

The next header detection module 133 is configured to classify a TCP, anUDP, an ICMPv6, a Hop by hop header, and a routing header based on thecomparison to transfer a classification signal to the HW/SW packetprocess switch 135.

The HW/SW type packet processor state detection module 134 is configuredto detect operation state of the hardware type packet processor 110 andthe software type packet processor 120 and to output the detectedoperation state to the HW/SW packet process switch 135.

The HW/SW type packet processor state detection module 134 is configuredto detect a current packet processing amount of the hardware type packetprocessor 110 and the software type packet processor 120 and to transfera percentage of the detected current packet processing amount to theHW/SW packet process switch 135. This operation is performed for thepurpose of preventing a processor having a large usage from beingdelayed.

The HW/SW packet process switch 135 is configured to receive the nextheader value output from the next header detection module 133, and theoperation state of the hardware type packet processor 110 and thesoftware type packet processor 120 output from the HW/SW type packetprocessor state detection module 134 based on the detection resultoutput from the IPv6 packet detection module 132.

The HW/SW packet process switch 135 is configured to generate a controlsignal indicating whether to process the Internet packet by the hardwaretype packet processor 110 or the software type packet processor 120according to the definition stored in the user definition memory 131with reference to the received detection result, the next header value,and the operation state to output the control signal to the hardwaretype packet processor 110 or the software type packet processor 120.

Further, when the percentage received from the HW/SW type packetprocessor state detection module 134 is equal to or greater than acertain value, the HW/SW packet process switch 135 reduces thepercentage by performing the load balancing for the hardware type packetprocessor 110 or the software type packet processor 120. In addition, itis preferable to transfer and process a packet having a high utilizationrate from a processor having a low utilization rate. In this case, thepacket should be able to be processed in both of the hardware typepacket processor 110 and the software type packet processor 120.

In more detail, when the percentage, that is, the utilization rate ofthe hardware type packet processor 110 or the software type packetprocessor 120 is equal to or greater than the certain value, the HW/SWpacket process switch 135 performs the load balancing.

For example, when the percentage, that is, the utilization rate of oneof the hardware type packet processor 110 and the software type packetprocessor 120 is equal to or greater than 95%, a load of a packetprocessor having a utilization rate of 95% or greater is transferred toanother packet processor so that the percentage is less than 95%. Inthis case, the HW/SW packet process switch 135 may perform the loadbalancing according to each field of a protocol applied to a currentpacket. The HW/SW packet process switch 135 may be configured to enablethe hardware type packet processor 110 to process a packet processingload with respect to packets of a specific protocol and a specific fieldor the software type packet processor 120 to process a packet processingload with respect to packets of another specific protocol and anotherspecific field.

As an example of the load balancing, since the hardware type packetprocessor 110 is advantageous in view of a rate, if both of the hardwaretype packet processor 110 and the software type packet processor 120 mayprocess the Internet packet, the hardware type packet processor 110 isadvantageous to process the packet processing load. When the hardwaretype packet processor 110 cannot process a certain packet having anextension field of IPv6, the software type packet processor 120 shouldunconditionally process the packet processing load.

A detailed algorithm of the load balancing may be variously configuredfor the most suitable optimal processing.

FIG. 5 is a block diagram illustrating an IPv4/IPv6 dual stacksoftware/hardware method for processing an Internet packet according toan embodiment of the present invention.

Referring to FIG. 5, the packet process controller 130 generates andoutputs a control signal for controlling the hardware type packetprocessor 110 to process the Internet packet or a control signal forcontrolling the software type packet processor 120 to process theinternet packet according to a protocol of the Internet packet (S101).

In this case, the IPv6 packet detection module 132 may be configured toparse the Internet packet, to detect whether the Internet packet is anIPv4 packet or the IPv6 packet, and to output the detection result. Inaddition, the next header detection module 133 may detect a next headervalue from headers of the IPv6 packet detected by the IPv6 packetdetection module 132 to output a next header value, and the HW/SW typepacket processor state detection module 134 may detect and outputoperation state of the hardware type packet processor 110 and thesoftware type packet processor 120.

The HW/SW packet process switch 135 is configured to generate and outputa control signal indicating whether to process the Internet packet bythe hardware type packet processor 110 or the software type packetprocessor 120 according to the definition stored in the user definitionmemory 131 with reference to the output detection result, the nextheader value, and the operation state.

Meanwhile, the IPv6 packet detection module 132 may be configured toreceive the type field value of the Ethernet header from the Ethernetheader processing module 111, and to compare the received type fieldvalue of the Ethernet header with a type field value stored in the userdefinition memory 131, and to classify the IPv6 packet, the IPv4 packet,an ARP, and a PPPoE packet based on the comparison to transfer aclassification signal to the HW/SW packet process switch 135.

Further, the next header detection module 133 may be configured toreceive a next header value from the IPv4/IPv6 header processing module112, and to compare the received next header value with a next headervalue stored in the user definition memory 131, and to classify a TCP,an UDP, an ICMPv6, a Hop by hop header, and a routing header based onthe comparison to transfer a classification signal to the HW/SW packetprocess switch 135.

Meanwhile, the HW/SW type packet processor state detection module 134may be configured to detect current packet processing amount of thehardware type packet processor 110 and the software type packetprocessor 120 and to transfer percentage of the detected current packetprocessing amount to the HW/SW packet process switch 135.

Meanwhile, when the percentage that the HW/SW packet process switch 135previously received is equal to or greater than a certain value, theHW/SW packet process switch 135 may be configured to perform the loadbalancing for the hardware type packet processor 110 or the softwaretype packet processor 120 which has a utilization rate equal to orgreater than the certain value so that the percentage does not exceedthe certain value.

In more detail, when the percentage, that is, the utilization rate ofthe hardware type packet processor 110 or the software type packetprocessor 120 is equal to or greater than the certain value, the HW/SWpacket process switch 135 performs the load balancing.

For example, when the percentage, that is, the utilization rate of oneof the hardware type packet processor 110 and the software type packetprocessor 120 is equal to or greater than 95%, the load of a packetprocessor having a utilization rate of 95% or greater is transferred toanother packet processor so that the percentage becomes less than 95%.In this case, the HW/SW packet process switch 135 may perform the loadbalancing according to each field of a protocol applied to a currentpacket. The HW/SW packet process switch 135 may be configured to enablethe hardware type packet processor 110 to process the packet processingload for a specific protocol and a specific field, or enable thesoftware type packet processor 120 to process the packet processing loadfor packets of another specific protocol and another specific field.

As an example of the load balancing, since the hardware type packetprocessor 110 is advantageous in view of a rate, if both of the hardwaretype packet processor 110 and the software type packet processor 120 areable to process the Internet packet, the hardware type packet processor110 is advantageous to process the packet processing load. When thehardware type packet processor 110 cannot process a certain packethaving the extension field of IPv6, the software type packet processor120 should unconditionally process the packet processing load.

A detailed algorithm of the load balancing may be variously configuredfor the most suitable optimal processing.

Next, the hardware type packet processor 110 processes the Internetpacket by a system logic circuit according to the previously outputcontrol signal (S102).

In this case, the Ethernet header processing module 111 may beconfigured to receive and process the Internet packet according to acorresponding protocol. In addition, the IPv4/IPv6 header processingmodule 112 may be configured to process IPv4 packet/IPv6 packetaccording to a corresponding protocol, and the TCP/UDP header processingmodule 113 may be configured to process a TCP/UDP packet according to acorresponding protocol.

After that, the software type packet processor 120 processes theInternet packet by execution of a previously prepared program accordingto the previously output control signal (S103).

In this case, the processor 123 may be configured to receive theInternet packet from a packet data bus to store the received Internetpacket in the buffer 122, and to process the previously stored Internetpacket according to a program of the software program memory 121 storinga user program to implement processing of the Internet packet.

Although embodiments have been described with reference to a number ofillustrative embodiments thereof, it should be understood that numerousother modifications and embodiments can be devised by those skilled inthe art that will fall within the spirit and scope of the principles ofthis disclosure.

What is claimed is:
 1. An IPv4/IPv6 dual stack software/hardwareapparatus for processing an internet packet, the apparatus comprising: ahardware type packet processor configured to process the Internet packetby a system logic circuit; a software type packet processor configuredto process the Internet packet according to execution of a previouslyprepared program; and a packet process controller configured to receivethe Internet packet to control the hardware type packet processor toprocess the Internet packet of a preset protocol, and to control thesoftware type packet processor to process the Internet packet of anotherpreset protocol.
 2. The apparatus of claim 1, wherein the hardware typepacket processor comprises: an Ethernet header processing moduleconfigured to receive and process the Internet packet according to acorresponding protocol; an IPv4/IPv6 header processing module configuredto process an IPv4 packet/IPv6 packet according to a correspondingprotocol; and a TCP/UDP header processing module configured to process aTCP/UDP packet according to a corresponding protocol.
 3. The apparatusof claim 1, wherein the software type packet processor comprises: asoftware program memory configured to store a user program forimplementing processing of the Internet packet; a buffer configured toreceive and store the Internet packet from a packet data bus; and aprocessor configured to process the Internet packet stored in the bufferaccording to the user program stored in the software program memory. 4.The apparatus of claim 2, wherein the packet process controllercomprises: a user definition memory configured to previously set andstore a definition regarding whether to process the Internet packet bythe hardware type packet processor or the software type packet processoraccording to a protocol of the Internet packet; an IPv6 packet detectionmodule configured to parse the Internet packet, and to detect whetherthe Internet packet is the IPv4 packet or the IPv6 packet to output adetection result; a next header detection module configured to detect anext header value from headers of the IPv6 packet detected by the IPv6packet detection module to output the detected next header value; anHW/SW type packet processor state detection module configured to detectand output operation state of the hardware type packet processor and thesoftware type packet processor; and an HW/SW packet process switchconfigured to receive the next header value output from the next headerdetection module and the operation state output from the HW/SW typepacket processor state detection module based on the detection resultoutput from the IPv6 packet detection module, and to generate and outputa control signal indicating whether to process the Internet packet bythe hardware type packet processor or the software type packet processoraccording to the definition stored in the user definition memory withreference to the received detection result, the next header value, andthe operation state.
 5. The apparatus of claim 4, wherein the userdefinition memory stores a first table in which information regardingwhether to process the Internet packet by the hardware type packetprocessor or the software type packet processor is previously definedaccording to a type field value of an Ethernet header, and stores asecond table in which information regarding whether to process theInternet packet by the hardware type packet processor or the softwaretype packet processor is previously defined according to a next headervalue of a next header.
 6. The apparatus of claim 5, wherein the IPv6packet detection module receives a type field value of the Ethernetheader from the Ethernet header processing module, compares the receivedtype field value of the Ethernet header with the type field value storedin the first table of the user definition memory, and classifies theIPv6 packet, the IPv4 packet, an ARP, and a PPPoE packet to transfer aclassification signal to the HW/SW packet process switch.
 7. Theapparatus of claim 6, wherein the next header detection module receivesthe next header value from the IPv4/IPv6 header processing module,compares the received next header value with the next header valuestored in the second table of the user definition memory, and classifiesa TCP, an UDP, an ICMPv6, a Hop by hop header, and a routing header totransfer a classification signal to the HW/SW packet process switch. 8.The apparatus of claim 7, wherein the HW/SW type packet processor statedetection module detects current packet processing amount of thehardware type packet processor and the software type packet processorrespectively to transfer a percentage of the detected current packetprocessing amount to the HW/SW packet process switch, and when thetransferred percentage of the detected current packet processing amountis equal to or greater than a certain value, the HW/SW packet processswitch performs a load balancing by the hardware type packet processorand the software type packet processor according to each field of aprotocol applied to a packet so that the percentage of the detectedcurrent packet processing amount is less than the certain value.
 9. AnIPv4/IPv6 dual stack software/hardware method for processing an internetpacket, the method comprising: generating and outputting a controlsignal for controlling a hardware type packet processor to process theInternet packet or a control signal for controlling a software typepacket processor to process the internet packet according to a protocolof the Internet packet by a packet process controller; processing theInternet packet by a system logic circuit according to the outputcontrol signal by a hardware type packet processor; and processing theInternet packet by execution of a previously prepared program accordingto the output control signal by a software type packet processor. 10.The method of claim 9, wherein the processing of the Internet packet bythe system logic circuit according to the output control signal by thehardware type packet processor comprises: receiving and processing theInternet packet according to a corresponding protocol by an Ethernetheader processing module; processing an IPv4 packet/IPv6 packetaccording to a corresponding protocol by a IPv4/IPv6 header processingmodule; and processing a TCP/UDP packet according to a correspondingprotocol by a TCP/UDP header processing module.
 11. The method of claim10, wherein the processing of the Internet packet by execution of apreviously prepared program according to the output control signal bythe software type packet processor comprises: receiving the Internetpacket from a packet data bus to store the received Internet packet in abuffer; and processing the stored Internet packet according to a programof a software program memory storing a user program to implementprocessing of the Internet packet by a processor.
 12. The method ofclaim 10, wherein the generating and outputting of the control signalfor controlling the hardware type packet processor to process theInternet packet or a control signal for controlling the software typepacket processor to process the internet packet according to a protocolof the Internet packet by the packet process controller comprises:parsing the Internet packet to detect whether the Internet packet is theIPv4 packet or the IPv6 packet to output a detection result by a IPv6packet detection module; detecting a next header value from headers ofthe IPv6 packet detected by the IPv6 packet detection module to output anext header value by a next header detection module; detecting andoutputting operation state of the hardware type packet processor and thesoftware type packet processor by an HW/SW type packet processor statedetection module; and generating and output a control signal indicatingwhether to process the Internet packet by the hardware type packetprocessor and the software type packet processor according to adefinition stored in a user definition memory with reference to theoutput detection result, the next header value, and the operation stateof the hardware type packet processor and the software type packetprocessor by an HW/SW packet process switch.
 13. The method of claim 12,wherein the generating and outputting of the control signal forcontrolling the hardware type packet processor to process the Internetpacket or a control signal for controlling the software type packetprocessor to process the internet packet according to a protocol of theInternet packet by the packet process controller comprises: receiving atype field value of the Ethernet header from the Ethernet headerprocessing module to compare the received type field value of theEthernet header with a type field value stored in the user definitionmemory by the IPv6 packet detection module; and classifying the IPv6packet, the IPv4 packet, an ARP, and a PPPoE packet to transfer aclassification signal to the HW/SW packet process switch.
 14. The methodof claim 13, wherein the generating and outputting of the control signalfor controlling the hardware type packet processor to process theInternet packet or a control signal for controlling the software typepacket processor to process the internet packet according to a protocolof the Internet packet by a packet process controller comprises:receiving a next header value from the IPv4/IPv6 header processingmodule to compare the received next header value with the next headervalue previously stored in the user definition memory by the next headerdetection module; and classifying a TCP, an UDP, an ICMPv6, a Hop by hopheader, and a routing header to transfer a classification signal to theHW/SW packet process switch.
 15. The method of claim 14, wherein thegenerating and outputting of the control signal for controlling thehardware type packet processor to process the Internet packet or acontrol signal for controlling the software type packet processor toprocess the internet packet according to a protocol of the Internetpacket by the packet process controller comprises: detecting currentpacket processing amount of the hardware type packet processor and thesoftware type packet processor by the HW/SW type packet processor statedetection module; and transferring a percentage of the detected currentpacket processing amount to the HW/SW packet process switch.
 16. Themethod of claim 15, wherein the generating and outputting of the controlsignal for controlling the hardware type packet processor to process theInternet packet or a control signal for controlling the software typepacket processor to process the internet packet according to a protocolof the Internet packet by the packet process controller comprises: whenthe transferred percentage is equal to or greater than a certain value,performing load balancing by the hardware type packet processor and thesoftware type packet processor according to each field of a protocolapplied to a packet so that the percentage of the detected currentpacket processing amount is less than the certain value.
 17. Theapparatus of claim 3, wherein the packet process controller comprises: auser definition memory configured to previously set and store adefinition regarding whether to process the Internet packet by thehardware type packet processor or the software type packet processoraccording to a protocol of the Internet packet; an IPv6 packet detectionmodule configured to parse the Internet packet, and to detect whetherthe Internet packet is the IPv4 packet or the IPv6 packet to output adetection result; a next header detection module configured to detect anext header value from headers of the IPv6 packet detected by the IPv6packet detection module to output the detected next header value; anHW/SW type packet processor state detection module configured to detectand output operation state of the hardware type packet processor and thesoftware type packet processor; and an HW/SW packet process switchconfigured to receive the next header value output from the next headerdetection module and the operation state output from the HW/SW typepacket processor state detection module based on the detection resultoutput from the IPv6 packet detection module, and to generate and outputa control signal indicating whether to process the Internet packet bythe hardware type packet processor or the software type packet processoraccording to the definition stored in the user definition memory withreference to the received detection result, the next header value, andthe operation state.